import asyncio
import logging
import pybotters
import signal

import bitbank


async def main():
  alive = True
  logging.basicConfig(level=logging.DEBUG)

  def teardown():
    nonlocal alive
    alive = False
    for t in asyncio.all_tasks():
      t.cancel()

  loop = asyncio.get_event_loop()
  loop.add_signal_handler(signal.SIGTERM, teardown)
  loop.add_signal_handler(signal.SIGINT,  teardown)

  async with pybotters.Client(apis="secret.json") as cli:
    await asyncio.gather(bitbank.init(cli))
    while alive: await asyncio.sleep(0.5)

if __name__ == "__main__":
  try:
    loop = asyncio.new_event_loop()
    loop.run_until_complete(main())
  finally:
    loop.close()
